home *** CD-ROM | disk | FTP | other *** search
/ Aminet 16 / Aminet 16 (1996)(GTI - Schatztruhe)[!][Dec 1996].iso / Aminet / dev / src / wangisrc.lha / wangi / z / SM / SMPrefs / Window_SysOpt.PAS < prev   
Pascal/Delphi Source File  |  1995-07-11  |  6KB  |  190 lines

  1. Procedure SysOptWin(Left, Top : Integer);
  2.  
  3. CONST
  4.     NI = 0; CC = 1; G_CLK = 2; G_WILD = 3; 
  5.     G_SHAN = 4; G_POP = 5; G_FLUSH = 6; G_LOG = 7; 
  6.     G_OK = 8;  G_CAN = 9;
  7.      
  8. VAR 
  9.     T                            : Array[0..13] of tTagItem;
  10.     GadFlags            : tNewGadget;
  11.     G                            : Array[NI..G_CAN] of pGadget;
  12.     dummy                    : LONG;
  13.     ExitFlag, OK    : Boolean;
  14.     TheWin                : pWindow;
  15.     message                : pIntuiMessage;
  16.     MsgClass            : LongInt;
  17.     gadcode       : pGadget;
  18.  
  19. begin
  20.     G[NI] := NIL;
  21.     G[CC] := CreateContext(@g[NI]);
  22.     If G[CC] <> NIL Then begin
  23.     
  24.         T[0].ti_Tag  := GTCB_Checked;
  25.         T[0].ti_Data := ord(CD.cd_NoClick);
  26.         T[1].ti_Tag  := $80080044;  { GTCB_Scaled }
  27.         T[1].ti_Data := True_;
  28.         T[2].ti_Tag  := TAG_DONE;
  29.  
  30.         With GadFlags Do Begin
  31.             ng_TextAttr   := @My_Font;
  32.             ng_Width      := Sizes[S_CM_W];
  33.             ng_LeftEdge   := Sizes[S_WB_L]+8;
  34.             ng_TopEdge    := Sizes[TBS] + 4;
  35.             ng_Height     := Sizes[S_GAD_H];
  36.             ng_GadgetText := CStrConstPtrAR(@RememberKey, 'No drive click');
  37.             ng_GadgetID   := G_CLK;
  38.             ng_VisualInfo := vi;
  39.             ng_Flags      := PLACETEXT_RIGHT;
  40.         End;
  41.         G[G_CLK] := CreateGadgetA(CHECKBOX_KIND, G[CC], @GadFlags, @T);
  42.         
  43.         T[0].ti_Data := ord(CD.cd_WildStar);
  44.         With GadFlags Do Begin
  45.             ng_TopEdge    := ng_TopEdge + ng_Height + 1;
  46.             ng_GadgetText := CStrConstPtrAR(@RememberKey, 'WildStar: use * as pattern');
  47.             ng_GadgetID   := G_WILD;
  48.         end;
  49.         G[G_WILD] := CreateGadgetA(CHECKBOX_KIND, G[G_CLK], @GadFlags, @T);
  50.         
  51.         T[0].ti_Data := ord(CD.cd_Shanghai);
  52.         With GadFlags Do Begin
  53.             ng_TopEdge    := ng_TopEdge + ng_Height + 1;
  54.             ng_GadgetText := CStrConstPtrAR(@RememberKey, 'Shanghai windows to default public screen');
  55.             ng_GadgetID   := G_SHAN;
  56.         end;
  57.         G[G_SHAN] := CreateGadgetA(CHECKBOX_KIND, G[G_WILD], @GadFlags, @T);
  58.         
  59.         T[0].ti_Data := ord(CD.cd_PopPubScr);
  60.         With GadFlags Do Begin
  61.             ng_TopEdge    := ng_TopEdge + ng_Height + 1;
  62.             ng_GadgetText := CStrConstPtrAR(@RememberKey, 'Screen to front when window opens');
  63.             ng_GadgetID   := G_POP;
  64.         end;
  65.         G[G_POP] := CreateGadgetA(CHECKBOX_KIND, G[G_SHAN], @GadFlags, @T);
  66.         
  67.         T[0].ti_Data := ord(CD.cd_Flush);
  68.         With GadFlags Do Begin
  69.             ng_TopEdge    := ng_TopEdge + ng_Height + 1;
  70.             ng_GadgetText := CStrConstPtrAR(@RememberKey, 'Flush memory after quiting');
  71.             ng_GadgetID   := G_FLUSH;
  72.         end;
  73.         G[G_FLUSH] := CreateGadgetA(CHECKBOX_KIND, G[G_POP], @GadFlags, @T);
  74.  
  75.         T[0].ti_Data := ord(CD.cd_LogFile);
  76.         With GadFlags Do Begin
  77.             ng_TopEdge    := ng_TopEdge + ng_Height + 1;
  78.             ng_GadgetText := CStrConstPtrAR(@RememberKey, 'Logfile (S:SM_LOG)');
  79.             ng_GadgetID   := G_LOG;
  80.         end;
  81.         G[G_LOG] := CreateGadgetA(CHECKBOX_KIND, G[G_FLUSH], @GadFlags, @T);
  82.  
  83.         T[0].ti_Tag := TAG_END;
  84.         With GadFlags Do Begin
  85.             ng_LeftEdge   := Sizes[S_WB_L]+8;
  86.             ng_Width      := (Sizes[S_G2_W] div 3);
  87.             ng_TopEdge    := ng_TopEdge + Sizes[S_GAD_H] + 8;
  88.             ng_GadgetText := CStrConstPtrAR(@RememberKey, 'OK');
  89.             ng_GadgetID   := G_OK;
  90.             ng_Flags      := 0;
  91.         End;
  92.         G[G_OK] := CreateGadgetA(BUTTON_KIND, G[G_LOG], @GadFlags, @T);
  93.      
  94.         With GadFlags Do Begin
  95.             ng_LeftEdge   := Sizes[S_WB_L]+48+Sizes[SOTxt_W]-ng_Width; 
  96.             ng_GadgetText := CStrConstPtrAR(@RememberKey, 'Cancel');
  97.             ng_GadgetID   := G_CAN;
  98.         End;
  99.         G[G_CAN] := CreateGadgetA(BUTTON_KIND, G[G_OK], @GadFlags, @T);
  100.      
  101.         T[0].ti_Tag  := WA_Left;
  102.         T[0].ti_Data := Left;
  103.         T[1].ti_Tag  := WA_Top;
  104.         T[1].ti_Data := Top;
  105.         T[2].ti_Tag  := WA_Width;
  106.         T[2].ti_Data := Sizes[S_WB_L]+8+Sizes[SOTxt_W]+40+Sizes[S_WB_L]+8;
  107.         T[3].ti_Tag  := WA_Height;
  108.         T[3].ti_Data := g[G_CAN]^.TopEdge + g[G_CAN]^.Height + Sizes[S_WB_B] + 4;
  109.         T[4].ti_Tag  := WA_Title;
  110.         T[4].ti_Data := LONG(CStrConstPtrAR(@RememberKey, 'System options')); 
  111.         T[5].ti_Tag  := WA_IDCMP;
  112.         T[5].ti_Data := BUTTONIDCMP|IDCMP_GADGETUP|CHECKBOXIDCMP|
  113.                                 IDCMP_REFRESHWINDOW|IDCMP_CLOSEWINDOW;
  114.         T[6].ti_Tag  := WA_CloseGadget;
  115.         T[6].ti_Data := True_;
  116.         T[7].ti_Tag  := WA_DragBar;
  117.         T[7].ti_Data := True_;
  118.         T[8].ti_Tag  := WA_DepthGadget;
  119.         T[8].ti_Data := True_;
  120.         T[9].ti_Tag  := WA_AutoAdjust;
  121.         T[9].ti_Data := True_;
  122.         T[10].ti_Tag := WA_Activate;
  123.         T[10].ti_Data:= True_;
  124.         T[11].ti_Tag := WA_Gadgets;
  125.         T[11].ti_Data:= LONG(g[NI]);
  126.         T[12].ti_Tag := WA_SimpleRefresh;
  127.         T[12].ti_Data:= True_; 
  128.         T[13].ti_Tag := TAG_DONE;
  129.     
  130.         TheWin := OpenWindowTaglist(NIL,@T);
  131.         If TheWin <> NIL Then begin
  132.             GT_RefreshWindow(TheWin, NIL);
  133.         
  134.             ExitFlag := False;
  135.             While Not exitflag Do Begin
  136.                 dummy := Wait(BitMask(TheWin^.UserPort^.MP_SIGBIT));
  137.             message  := GT_GetIMsg(TheWin^.userPort);
  138.             while message <> NIL do begin
  139.                 MsgClass := message^.Class;
  140.                 if MsgClass = IDCMP_GADGETUP then 
  141.                     GadCode  := pGadget(message^.IAddress);
  142.                 GT_ReplyIMsg(message);
  143.                 Case MsgClass Of
  144.           
  145.                     IDCMP_REFRESHWINDOW : Begin
  146.                         GT_BeginRefresh(TheWin);
  147.                         GT_EndRefresh(TheWin, True);
  148.                     end;
  149.                     IDCMP_CLOSEWINDOW : ExitFlag := True;
  150.                     IDCMP_GADGETUP : Begin
  151.                         Case gadcode^.GadgetID Of
  152.                             G_OK   : begin
  153.                                 ExitFlag := True;
  154.                                 if G[G_CLK]^.Flags and GFLG_SELECTED <> 0 then 
  155.                                     CD.cd_NoClick := True
  156.                                 else
  157.                                     CD.cd_NoClick := False;
  158.                                 if G[G_WILD]^.Flags and GFLG_SELECTED <> 0 then 
  159.                                     CD.cd_WildStar := True
  160.                                 else
  161.                                     CD.cd_WildStar := False;
  162.                                 if G[G_SHAN]^.Flags and GFLG_SELECTED <> 0 then 
  163.                                     CD.cd_Shanghai := True
  164.                                 else
  165.                                     CD.cd_Shanghai := False;
  166.                                 if G[G_POP]^.Flags and GFLG_SELECTED <> 0 then 
  167.                                     CD.cd_PopPubScr := True
  168.                                 else
  169.                                     CD.cd_PopPubScr := False;
  170.                                 if G[G_FLUSH]^.Flags and GFLG_SELECTED <> 0 then 
  171.                                     CD.cd_Flush := True
  172.                                 else
  173.                                     CD.cd_Flush := False;
  174.                                 if G[G_LOG]^.Flags and GFLG_SELECTED <> 0 then 
  175.                                     CD.cd_LogFile := True
  176.                                 else
  177.                                     CD.cd_LogFile := False;
  178.                             end;
  179.                             G_CAN : ExitFlag := True;
  180.                         End;
  181.                     end;
  182.                 End;
  183.                 message  := GT_GetIMsg(TheWin^.userPort);
  184.                 end;
  185.             End;
  186.             CloseWindow(TheWin);
  187.             FreeGadgets(g[NI]);
  188.         end;
  189.     end;
  190. end;